The creators of many computing devices build them to only run very specific, well defined computing resources, such as code embodied in software or firmware, greatly restricting, including completely restricting, the type and kind of resources an end user may run on them. Some examples of such devices are mobile devices and gaming consoles like the iPhone®, Sony Playstation®, Xbox 360®, and Windows Phone 7®. Maintaining control of the code that runs on these systems is an integral part of the efficient operation of and user experience provided by these devices.
An important part of the process of distributing prototypes or pre-releases of computing resources, such as code for upgrades or new functionality embodied in software or firmware, to customers is proper validation of software which takes time, and delays the release of new or improved prototypes for testing by customers. For example, a party which creates software games to run on a certain type of gaming console may want to pre-release different versions of a game to see which is most popular. In another example, a party may want to make available a prototype upgrade as soon as possible to keep up with a competitor's release.